package es.ats.codington.festival.interfaces.daos;

import java.sql.SQLException;
import java.util.List;

import es.ats.codington.festival.domain.Event;
import es.ats.codington.festival.domain.EventSignUp;

public interface IEvenSignUpDAO {
	
	/**
	 * 
	 * @param e
	 * @return
	 * @throws SQLException
	 */
	
	public int registerVisitorForNewEventDAO(EventSignUp e) throws SQLException;
	
	/**
	 * 
	 * @param e
	 * @return
	 * @throws SQLException
	 */
	
	public boolean checkEventsofVisitorDAO(EventSignUp e) throws SQLException;
	
	/**
	 * 
	 * @param e
	 * @return
	 * @throws SQLException
	 */
	
	public int unregisterVisitorForEventDAO(EventSignUp e) throws SQLException;
	
	/**
	 * 
	 * @param e
	 * @return
	 * @throws SQLException
	 */
	
	public List<Event> viewEventsOfUserDAO(EventSignUp e) throws SQLException;

	/**
	 * 
	 * @param e
	 * @return
	 */
	public boolean updateMinusSeatsAvailableEventDAO(EventSignUp e);
	
	/**
	 * 
	 * @param e
	 * @return
	 */
	public boolean updateSumSeatsAvailableEventDAO(EventSignUp e);
	
	/**
	 * 
	 * @param e
	 * @return
	 */
	public boolean checkSeatsAvailableDAO(EventSignUp e);
	
	/**
	 * 
	 * @param idEvent
	 * @return
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	public boolean unregisterAllVisitorforEvent(int idEvent) throws ClassNotFoundException, SQLException;
	
	
	
}
